정수 내림차순으로 배치하기
문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다.
n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요.
예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
n
은 1이상 8000000000 이하인 자연수입니다.
입출력 예
n | return |
---|---|
118372 | 873211 |
풀이
def solution(n):
numbers = list(str(n))
numbers.sort(reverse=True)
sum = 0
for i in numbers:
sum = sum * 10 + int(i)
return sum;
str()
함수로 n을 문자열로 변환 후 list()
함수에 매개변수로 넘겨주면
자릿수별로 쪼개져서 리스트로 변환됩니다.
그 후에 변환된 리스트를 sort()
함수로 뒤집고 뒤집어진 리스트를 순서대로 순회하면서
문자를 하나씩 꺼내서 정수로 변환해 주면 됩니다.
입출력 예 #1번으로 예를 들어보겠습니다. 정수 118372
를 문자열로 변환하면 "118372"
가 되고,
list("118372")
를 하게 되면 ["1", "1", "8", "3", "7", "2"]
가 반환됩니다.
반환된 리스트를 sort(reverse=True)
로 정렬하면 ["8", "7", "3", "2", "1", "1"]
이 됩니다.
그 후로 0번 index부터 순서대로 리스트 끝까지 순회하며 정수로 변환해주면 됩니다.